home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / microreader / MicroReader.jar / f.class (.txt) < prev   
Encoding:
Java Class File  |  2002-06-10  |  22.9 KB  |  1,613 lines

  1. import com.siemens.mp.game.ExtendedImage;
  2. import com.siemens.mp.io.File;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.Stack;
  6. import java.util.Timer;
  7. import java.util.Vector;
  8. import javax.microedition.lcdui.Canvas;
  9. import javax.microedition.lcdui.Font;
  10. import javax.microedition.lcdui.Graphics;
  11. import javax.microedition.lcdui.Image;
  12.  
  13. // $FF: renamed from: f
  14. class class_0 extends Canvas implements Runnable {
  15.    // $FF: renamed from: t com.siemens.mp.io.File
  16.    private File field_0 = new File();
  17.    // $FF: renamed from: ak a
  18.    a field_1 = new a(0);
  19.    // $FF: renamed from: ag a
  20.    private a field_2 = new a(0);
  21.    // $FF: renamed from: r a
  22.    private a field_3 = null;
  23.    // $FF: renamed from: aq boolean
  24.    volatile boolean field_4 = false;
  25.    // $FF: renamed from: W javax.microedition.lcdui.Font
  26.    private Font field_5 = null;
  27.    // $FF: renamed from: i int
  28.    int field_6 = 0;
  29.    // $FF: renamed from: e int
  30.    int field_7;
  31.    // $FF: renamed from: p int
  32.    int field_8;
  33.    // $FF: renamed from: if int
  34.    int field_9;
  35.    // $FF: renamed from: z int
  36.    private int field_10;
  37.    // $FF: renamed from: aa char
  38.    public static final char field_11 = '\u0080';
  39.    // $FF: renamed from: ab int
  40.    private static final int field_12 = -14;
  41.    // $FF: renamed from: R int
  42.    private static final int field_13 = -11;
  43.    // $FF: renamed from: q int
  44.    private static final int field_14 = -13;
  45.    // $FF: renamed from: U int
  46.    private static final int field_15 = -63;
  47.    // $FF: renamed from: ah int
  48.    private static final int field_16 = -5;
  49.    // $FF: renamed from: Q int
  50.    private static final int field_17 = -1;
  51.    // $FF: renamed from: y int
  52.    private static final int field_18 = -6;
  53.    // $FF: renamed from: o int
  54.    private static final int field_19 = -12;
  55.    // $FF: renamed from: P int
  56.    private static final int field_20 = -59;
  57.    // $FF: renamed from: ap int
  58.    private static final int field_21 = -60;
  59.    // $FF: renamed from: V int
  60.    private static final int field_22 = -61;
  61.    // $FF: renamed from: X int
  62.    private static final int field_23 = -62;
  63.    // $FF: renamed from: k int
  64.    private static final int field_24 = Integer.MIN_VALUE;
  65.    // $FF: renamed from: b boolean
  66.    public static final boolean field_25 = true;
  67.    // $FF: renamed from: S boolean
  68.    private static final boolean field_26 = false;
  69.    // $FF: renamed from: ac byte
  70.    public static byte field_27 = 15;
  71.    // $FF: renamed from: try int
  72.    int field_28 = 0;
  73.    // $FF: renamed from: w boolean
  74.    boolean field_29 = false;
  75.    // $FF: renamed from: m long
  76.    long field_30;
  77.    // $FF: renamed from: h java.util.Timer
  78.    private Timer field_31 = null;
  79.    // $FF: renamed from: C int
  80.    private static final int field_32 = 450;
  81.    // $FF: renamed from: M int
  82.    private static final int field_33 = 2500;
  83.    // $FF: renamed from: N int
  84.    private static final int field_34 = 800;
  85.    // $FF: renamed from: v int
  86.    private int field_35 = 800;
  87.    // $FF: renamed from: g boolean
  88.    private boolean field_36 = false;
  89.    // $FF: renamed from: Z boolean
  90.    private boolean field_37 = true;
  91.    // $FF: renamed from: aw boolean
  92.    private boolean field_38 = false;
  93.    // $FF: renamed from: af boolean
  94.    private boolean field_39;
  95.    // $FF: renamed from: F boolean
  96.    private boolean field_40;
  97.    // $FF: renamed from: au boolean
  98.    private boolean field_41;
  99.    // $FF: renamed from: long boolean
  100.    private boolean field_42;
  101.    // $FF: renamed from: u byte
  102.    private byte field_43;
  103.    // $FF: renamed from: s boolean
  104.    private boolean field_44 = false;
  105.    // $FF: renamed from: case int
  106.    private final int field_45 = 2;
  107.    // $FF: renamed from: ad char[]
  108.    private static final char[] field_46 = new char[]{' ', '\n', '\r', '-', '\t'};
  109.    // $FF: renamed from: al boolean
  110.    private static boolean field_47;
  111.    // $FF: renamed from: do boolean
  112.    private static boolean field_48;
  113.    // $FF: renamed from: j int
  114.    private int field_49;
  115.    // $FF: renamed from: ar int
  116.    private int field_50;
  117.    // $FF: renamed from: byte int
  118.    private int field_51;
  119.    // $FF: renamed from: ax int
  120.    private int field_52;
  121.    // $FF: renamed from: n int
  122.    private int field_53;
  123.    // $FF: renamed from: G com.siemens.mp.game.ExtendedImage
  124.    private ExtendedImage field_54;
  125.    // $FF: renamed from: char int
  126.    private int field_55;
  127.    // $FF: renamed from: int int
  128.    private int field_56;
  129.    // $FF: renamed from: E byte[]
  130.    private byte[] field_57 = new byte[512];
  131.    // $FF: renamed from: as char[]
  132.    private char[] field_58 = new char[532];
  133.    // $FF: renamed from: B int
  134.    int field_59 = 0;
  135.    // $FF: renamed from: I int
  136.    static int field_60 = 1;
  137.    // $FF: renamed from: void int
  138.    int field_61 = -1;
  139.    // $FF: renamed from: A long
  140.    private long field_62 = 0L;
  141.    // $FF: renamed from: D byte
  142.    private byte field_63 = 0;
  143.    // $FF: renamed from: f int
  144.    int field_64;
  145.    // $FF: renamed from: l int
  146.    int field_65;
  147.    // $FF: renamed from: Y boolean
  148.    private boolean field_66 = false;
  149.    // $FF: renamed from: goto boolean
  150.    boolean field_67;
  151.    // $FF: renamed from: J boolean
  152.    boolean field_68;
  153.    // $FF: renamed from: null boolean
  154.    boolean field_69;
  155.    // $FF: renamed from: c byte
  156.    static final byte field_70 = 1;
  157.    // $FF: renamed from: ao byte
  158.    static final byte field_71 = 1;
  159.    // $FF: renamed from: K int
  160.    static final int field_72 = 0;
  161.    // $FF: renamed from: at boolean
  162.    static boolean field_73;
  163.    // $FF: renamed from: d boolean
  164.    static boolean field_74 = false;
  165.    // $FF: renamed from: O boolean
  166.    static boolean field_75;
  167.    // $FF: renamed from: a boolean
  168.    static boolean field_76;
  169.    // $FF: renamed from: H java.util.Stack
  170.    Stack field_77;
  171.    // $FF: renamed from: for byte[]
  172.    static byte[] field_78 = new byte[257];
  173.    // $FF: renamed from: ae char[]
  174.    static char[] field_79 = new char[256];
  175.    // $FF: renamed from: ai byte[]
  176.    static byte[] field_80;
  177.    // $FF: renamed from: av int
  178.    static int field_81;
  179.    // $FF: renamed from: else char
  180.    static final char field_82 = '╚Ç';
  181.    // $FF: renamed from: new java.util.Vector
  182.    Vector field_83;
  183.    // $FF: renamed from: x byte
  184.    byte field_84;
  185.    // $FF: renamed from: aj java.lang.String
  186.    String field_85;
  187.    // $FF: renamed from: am f
  188.    static class_0 field_86;
  189.    // $FF: renamed from: an int[]
  190.    private static final int[] field_87 = new int[]{8, 0, 16};
  191.    // $FF: renamed from: T javax.microedition.lcdui.Graphics
  192.    private static Graphics field_88;
  193.    // $FF: renamed from: L long
  194.    long field_89;
  195.  
  196.    // $FF: renamed from: for (java.lang.String) void
  197.    void method_0(String var1) {
  198.       this.field_67 = this.field_68 = false;
  199.       field_80 = null;
  200.       field_81 = 16777216;
  201.  
  202.       for(char var2 = 0; var2 < 256; field_79[var2] = var2++) {
  203.       }
  204.  
  205.       if (var1 != null) {
  206.          try {
  207.             InputStream var3 = this.getClass().getResourceAsStream("res/" + var1 + ".map");
  208.             if (var3 != null) {
  209.                int var4 = var3.read();
  210.                if (var4 != 0) {
  211.                   return;
  212.                }
  213.  
  214.                int var5 = var3.read();
  215.                byte[] var6 = new byte[var5 * 3];
  216.                var3.read(var6);
  217.                int var7 = 0;
  218.  
  219.                for(int var8 = var5; var8 > 0; --var8) {
  220.                   int var9 = var6[var7++] & 255;
  221.                   int var10 = var6[var7++] & 255;
  222.                   int var11 = var6[var7++] & 255;
  223.                   int var12 = var10 << 8 | var11;
  224.                   if (var12 < field_81) {
  225.                      field_81 = var12;
  226.                   }
  227.  
  228.                   if (var10 == 5) {
  229.                      this.field_67 = true;
  230.                   } else if (var10 == 6) {
  231.                      this.field_68 = true;
  232.                   }
  233.  
  234.                   field_79[var9] = (char)var12;
  235.                   field_78[var9] = (byte)this.field_5.charWidth((char)var12);
  236.                }
  237.  
  238.                field_80 = var6;
  239.                var3.close();
  240.             }
  241.          } catch (Exception var13) {
  242.          }
  243.       }
  244.  
  245.       this.field_69 = this.field_67 || this.field_68;
  246.    }
  247.  
  248.    class_0(String var1, boolean[] var2) {
  249.       field_86 = this;
  250.       this.field_77 = new Stack();
  251.       this.method_2(var2);
  252.       this.method_14(var1);
  253.    }
  254.  
  255.    // $FF: renamed from: do (int) int
  256.    int method_1(int var1) throws IOException {
  257.       if (Book.char) {
  258.          this.field_0.close(this.field_61);
  259.          this.field_61 = this.field_0.open(this.field_85);
  260.       }
  261.  
  262.       return this.field_0.seek(this.field_61, var1);
  263.    }
  264.  
  265.    // $FF: renamed from: a (boolean[]) void
  266.    void method_2(boolean[] var1) {
  267.       this.field_42 = var1[6];
  268.       this.field_38 = var1[4];
  269.       field_47 = var1[0];
  270.       field_48 = var1[1];
  271.       this.field_39 = var1[5];
  272.       this.method_4(field_47, field_48);
  273.       this.method_7(var1[3]);
  274.       this.method_3();
  275.    }
  276.  
  277.    // $FF: renamed from: int () void
  278.    void method_3() {
  279.       this.field_40 = this.field_39 && field_60 > 2048;
  280.       this.field_41 = this.field_40 && !this.field_44;
  281.    }
  282.  
  283.    // $FF: renamed from: a (boolean, boolean) void
  284.    void method_4(boolean var1, boolean var2) {
  285.       String var3 = "Fontw";
  286.       String var4 = Book.int();
  287.       int var5 = var2 ? 1 : 0;
  288.       field_48 = var2;
  289.       this.field_5 = Font.getFont(64, var1 ? 1 : 0, field_87[var5]);
  290.       int var6 = 1000;
  291.       File var7 = new File();
  292.  
  293.       try {
  294.          int var8 = var7.open(var3 + (var1 ? "1" : "0") + var5);
  295.          if (var7.length(var8) == 257) {
  296.             var7.read(var8, field_78, 0, 257);
  297.             var6 = field_78[256];
  298.          } else {
  299.             for(int var9 = 0; var9 < 256; ++var9) {
  300.                int var10 = this.field_5.charWidth((char)var9);
  301.                if (var10 < var6 && var10 > 0) {
  302.                   var6 = var10;
  303.                }
  304.  
  305.                field_78[var9] = (byte)var10;
  306.             }
  307.  
  308.             field_78[256] = (byte)var6;
  309.             var7.write(var8, field_78, 0, 257);
  310.          }
  311.  
  312.          var7.close(var8);
  313.       } catch (Exception var16) {
  314.       }
  315.  
  316.       this.field_84 = field_78[32];
  317.  
  318.       for(int var17 = field_46.length - 1; var17 >= 0; --var17) {
  319.          byte[] var10000 = field_78;
  320.          char var10001 = field_46[var17];
  321.          var10000[var10001] = (byte)(var10000[var10001] | 128);
  322.       }
  323.  
  324.       this.method_0(var4);
  325.       int var18 = ((Canvas)this).getHeight();
  326.       int var19 = this.field_5.getHeight();
  327.       this.field_43 = (byte)(this.field_42 ? 1 : 0);
  328.       this.field_7 = var18 / (var19 + this.field_43);
  329.       this.field_8 = this.field_7 - 1;
  330.       int var11 = this.field_7 * (var19 + this.field_43) - this.field_43;
  331.       if (this.field_42 && var11 + this.field_8 < var18) {
  332.          ++this.field_43;
  333.          var11 = this.field_7 * (var19 + this.field_43) - this.field_43;
  334.       }
  335.  
  336.       this.field_56 = Math.max(0, (var18 - (this.field_38 ? 0 : 3) - var11) / 2);
  337.       int var12 = this.field_56 + var11;
  338.       this.field_9 = ((Canvas)this).getWidth() / var6;
  339.       this.field_10 = this.field_53 = ((Canvas)this).getWidth();
  340.       int var13 = ((Canvas)this).getWidth() - 9;
  341.       if (!this.field_38) {
  342.          this.field_10 -= 4;
  343.          if (var12 < var18 - 4) {
  344.             this.field_53 = this.field_10;
  345.          } else {
  346.             this.field_53 = var13;
  347.          }
  348.  
  349.          if (this.field_67 || this.field_68) {
  350.             this.field_10 = this.field_53 = var13;
  351.          }
  352.       } else if ((Book.char || Book.e) && var12 >= var18 - 4) {
  353.          this.field_53 = var13;
  354.       }
  355.  
  356.       this.field_55 = var18 - 6;
  357.       this.field_54 = null;
  358.       this.field_54 = new ExtendedImage(Image.createImage(8, this.field_55));
  359.       byte[] var14 = Book.c();
  360.       var14[0] = 85;
  361.       var14[1] = -86;
  362.  
  363.       for(int var15 = 2; var15 < this.field_55; var15 <<= 1) {
  364.          System.arraycopy(var14, 0, var14, var15, var15);
  365.       }
  366.  
  367.       this.field_54.setPixels(var14, 0, 0, 8, this.field_55);
  368.    }
  369.  
  370.    // $FF: renamed from: long () int
  371.    public int method_5() {
  372.       return field_60;
  373.    }
  374.  
  375.    // $FF: renamed from: if (boolean) void
  376.    void method_6(boolean var1) {
  377.       if (var1 != this.field_37) {
  378.          this.field_77.removeElement(this.field_1);
  379.          this.field_77.removeAllElements();
  380.          this.field_77.addElement(this.field_1);
  381.          this.field_6 = 0;
  382.       }
  383.  
  384.       this.field_41 = this.field_40 && var1;
  385.       this.field_37 = var1;
  386.    }
  387.  
  388.    // $FF: renamed from: int (boolean) void
  389.    public void method_7(boolean var1) {
  390.       this.field_44 = var1;
  391.       if (this.field_44) {
  392.          this.field_51 = -59;
  393.          this.field_52 = -60;
  394.          this.field_49 = this.field_50 = 0;
  395.       } else {
  396.          this.field_49 = -59;
  397.          this.field_50 = -60;
  398.          this.field_51 = this.field_52 = 0;
  399.       }
  400.  
  401.    }
  402.  
  403.    // $FF: renamed from: for (boolean) void
  404.    public void method_8(boolean var1) {
  405.       this.field_38 = var1;
  406.    }
  407.  
  408.    // $FF: renamed from: a (a) void
  409.    public void method_9(a var1) {
  410.       this.field_77.addElement(var1);
  411.       this.field_4 = false;
  412.    }
  413.  
  414.    // $FF: renamed from: a () void
  415.    synchronized void method_10() {
  416.       this.field_29 = true;
  417.       this.field_31 = new Timer();
  418.       this.field_31.schedule(new c(this), (long)(this.field_1.int() * '\uea60' / this.field_35));
  419.    }
  420.  
  421.    // $FF: renamed from: try () boolean
  422.    synchronized boolean method_11() {
  423.       boolean var1 = this.field_29;
  424.       this.field_29 = false;
  425.       if (this.field_31 != null) {
  426.          this.field_31.cancel();
  427.          this.field_31 = null;
  428.       }
  429.  
  430.       return var1;
  431.    }
  432.  
  433.    // $FF: renamed from: do () int
  434.    public int method_12() {
  435.       return this.field_59;
  436.    }
  437.  
  438.    // $FF: renamed from: else () void
  439.    void method_13() {
  440.       try {
  441.          if (this.field_61 >= 0) {
  442.             this.field_0.close(this.field_61);
  443.          }
  444.       } catch (Exception var2) {
  445.       }
  446.  
  447.       this.field_61 = -1;
  448.    }
  449.  
  450.    // $FF: renamed from: if (java.lang.String) void
  451.    public void method_14(String var1) {
  452.       this.field_85 = var1;
  453.       field_60 = 1;
  454.       field_76 = false;
  455.       field_75 = false;
  456.       this.field_64 = -1;
  457.  
  458.       try {
  459.          this.method_13();
  460.          this.field_61 = this.field_0.open(this.field_85);
  461.          field_60 = this.field_0.length(this.field_61);
  462.          this.method_3();
  463.          this.method_22();
  464.          this.method_17(this.field_59);
  465.       } catch (Exception var4) {
  466.          this.field_61 = -1;
  467.          field_60 = 1;
  468.          this.field_1 = new a(0);
  469.          this.field_1.a(this.field_85 + ":\nCannot open.\nTip: File must be\nwriteable?");
  470.       }
  471.  
  472.    }
  473.  
  474.    // $FF: renamed from: int (int) int
  475.    private int method_15(int var1) {
  476.       this.field_59 = var1;
  477.       if (this.field_59 >= field_60 - 1) {
  478.          this.field_59 = field_60 - 64;
  479.       }
  480.  
  481.       if (this.field_59 < 0) {
  482.          this.field_59 = 0;
  483.       }
  484.  
  485.       return this.field_59;
  486.    }
  487.  
  488.    // $FF: renamed from: a (int, char) void
  489.    public void method_16(int var1, char var2) {
  490.       this.method_15(var1);
  491.       this.field_1 = null;
  492.       this.field_77.removeAllElements();
  493.       System.gc();
  494.       this.field_1 = this.method_39(this.field_59, var2);
  495.       this.field_6 = 0;
  496.       this.field_77.addElement(this.field_1);
  497.       this.field_59 = this.field_1.new;
  498.    }
  499.  
  500.    // $FF: renamed from: a (int) void
  501.    public void method_17(int var1) {
  502.       this.method_16(var1, '\u0000');
  503.    }
  504.  
  505.    // $FF: renamed from: new () void
  506.    public void method_18() {
  507.       this.method_17(this.field_28);
  508.    }
  509.  
  510.    // $FF: renamed from: a (javax.microedition.lcdui.Graphics) void
  511.    public void method_19(Graphics var1) {
  512.       int var2 = ((Canvas)this).getWidth();
  513.       int var3 = ((Canvas)this).getHeight();
  514.       a var4 = this.field_1;
  515.       if (this.field_3 != null) {
  516.          var4 = this.field_3;
  517.       }
  518.  
  519.       int var5 = var4.if();
  520.       var1.setColor(255, 255, 255);
  521.       var1.fillRect(0, 0, var2, var3);
  522.       var1.setFont(this.field_5);
  523.       var1.setColor(0, 0, 0);
  524.       int var6 = 16 | 4;
  525.       int var7 = 0;
  526.       if (this.field_67 || this.field_68) {
  527.          var6 = 16 | 8;
  528.          var7 = this.field_10;
  529.       }
  530.  
  531.       if (var5 > 0) {
  532.          if (this.field_43 > 0) {
  533.             int var8 = this.field_5.getHeight() + this.field_43;
  534.             int var9 = this.field_56;
  535.             int var10 = 0;
  536.  
  537.             int var12;
  538.             for(char[] var11 = var4.do(); var10 < var5; var10 = var12 + 1) {
  539.                for(var12 = var10; var12 < var5; ++var12) {
  540.                   if (var11[var12] == '\n') {
  541.                      var1.drawChars(var11, var10, var12 - var10 + 1, var7, var9, var6);
  542.                      var9 += var8;
  543.                      break;
  544.                   }
  545.                }
  546.             }
  547.          } else {
  548.             var1.drawChars(var4.do(), 0, var5, var7, this.field_56, var6);
  549.          }
  550.       }
  551.  
  552.       if (!this.field_38) {
  553.          this.field_54.blitToScreen(var2 - 2, 0);
  554.          int var13 = Math.max(1, field_60 - 0);
  555.          int var14 = this.field_55 * (this.field_59 - 0) / var13;
  556.          int var15 = 3 + var3 * var4.a / var13;
  557.          var1.setColor(255, 255, 255);
  558.          int var16 = var2 - 2;
  559.          var1.fillRect(var16, var14 - 1, 2, var15 + 2);
  560.          var1.setColor(0, 0, 0);
  561.          var1.fillRect(var16, var14, 2, var15);
  562.       }
  563.  
  564.       if (var4.new >> 4 == this.field_64 >> 4) {
  565.          var1.setColor(255, 255, 255);
  566.          var1.fillRect(var2 - 4, 0, 4, 9);
  567.          var1.setColor(0, 0, 0);
  568.          var1.drawRect(var2 - 3, 0, 2, 6);
  569.       }
  570.  
  571.       if (this.field_1.new > this.field_28) {
  572.          this.field_28 = this.field_1.new;
  573.       }
  574.  
  575.       if (this.field_3 != null) {
  576.          this.field_3 = null;
  577.       }
  578.  
  579.       Book.else();
  580.    }
  581.  
  582.    public void paint(Graphics var1) {
  583.       if ((this.field_38 || this.field_1.if) && !Book.char) {
  584.          field_88 = var1;
  585.          (new Thread(this)).start();
  586.       } else {
  587.          this.method_19(var1);
  588.       }
  589.  
  590.    }
  591.  
  592.    public void run() {
  593.       this.method_19(field_88);
  594.    }
  595.  
  596.    // $FF: renamed from: a (byte[], int) int
  597.    int method_20(byte[] var1, int var2) {
  598.       int var3 = var2 * 4;
  599.       int var4 = 0;
  600.  
  601.       for(int var5 = 3; var5 >= 0; --var5) {
  602.          var4 <<= 8;
  603.          var4 |= var1[var5 + var3] & 255;
  604.       }
  605.  
  606.       return var4;
  607.    }
  608.  
  609.    // $FF: renamed from: a (int, byte[], int) void
  610.    void method_21(int var1, byte[] var2, int var3) {
  611.       int var4 = var3 * 4;
  612.  
  613.       for(int var5 = 4; var5 > 0; --var5) {
  614.          var2[var4++] = (byte)(var1 & 255);
  615.          var1 >>= 8;
  616.       }
  617.  
  618.    }
  619.  
  620.    // $FF: renamed from: byte () void
  621.    private void method_22() {
  622.       this.field_59 = 0;
  623.       this.field_28 = 0;
  624.       this.field_83 = new Vector();
  625.       byte[] var1 = Book.e(Book.case(this.field_85));
  626.       int var2 = var1.length / 4;
  627.       int[] var3 = new int[Math.max(2, var2)];
  628.  
  629.       for(int var4 = 0; var4 < var2; ++var4) {
  630.          int var5 = this.method_20(var1, var4);
  631.          if ((var5 & Integer.MIN_VALUE) != 0) {
  632.             var5 &= Integer.MAX_VALUE;
  633.             this.field_64 = var5;
  634.          }
  635.  
  636.          if (var5 < 0) {
  637.             break;
  638.          }
  639.  
  640.          var5 = this.method_15(var5);
  641.          var3[var4] = var5;
  642.          if (var4 > 1) {
  643.             this.field_83.addElement(new Integer(var5));
  644.          }
  645.       }
  646.  
  647.       this.field_59 = var3[0];
  648.       this.field_28 = var3[1];
  649.       if (this.field_59 > this.field_28) {
  650.          this.field_28 = this.field_59;
  651.       }
  652.  
  653.    }
  654.  
  655.    // $FF: renamed from: if (int) int
  656.    public int method_23(int var1) {
  657.       return var1 < this.field_83.size() ? (Integer)this.field_83.elementAt(var1) : -1;
  658.    }
  659.  
  660.    // $FF: renamed from: case () int
  661.    public int method_24() {
  662.       byte[] var1 = this.method_37(this.field_59, 128);
  663.       this.field_65 = this.field_59 + this.method_35(var1, '\u0000', (char)var1.length);
  664.       Integer var2 = new Integer(this.field_65);
  665.       int var3 = this.field_83.indexOf(var2);
  666.       if (var3 < 0) {
  667.          int var4 = this.field_83.size();
  668.  
  669.          for(var3 = 0; var3 < var4; ++var3) {
  670.             int var5 = (Integer)this.field_83.elementAt(var3);
  671.             if (this.field_65 < var5) {
  672.                break;
  673.             }
  674.          }
  675.  
  676.          this.field_83.insertElementAt(var2, var3);
  677.          this.method_27(true, false);
  678.       } else {
  679.          this.method_28();
  680.       }
  681.  
  682.       return var3;
  683.    }
  684.  
  685.    // $FF: renamed from: if (int, int) void
  686.    private void method_25(int var1, int var2) {
  687.       for(int var3 = this.field_83.size() - 1; var3 >= 0; --var3) {
  688.          int var4 = (Integer)this.field_83.elementAt(var3);
  689.          if (var4 > var1) {
  690.             int var5 = var4 + var2;
  691.             this.field_83.setElementAt(new Integer(var5), var3);
  692.             if (var4 == this.field_64) {
  693.                this.field_64 = var5;
  694.             } else if (var4 == this.field_28) {
  695.                this.field_28 = var5;
  696.             }
  697.          }
  698.       }
  699.  
  700.       this.method_27(true, false);
  701.    }
  702.  
  703.    // $FF: renamed from: a (int, boolean) void
  704.    public void method_26(int var1, boolean var2) {
  705.       Integer var3 = new Integer(var1);
  706.       if (var1 == this.field_64) {
  707.          this.field_64 = -1;
  708.       }
  709.  
  710.       int var4 = this.field_83.size();
  711.       if (var1 >= 0) {
  712.          int var5 = this.field_83.lastIndexOf(var3);
  713.          if (var5 >= 0) {
  714.             this.field_83.removeElementAt(var5);
  715.          }
  716.       } else {
  717.          this.field_83.removeAllElements();
  718.          this.field_28 = this.field_59;
  719.          this.field_64 = -1;
  720.       }
  721.  
  722.       if (var2 && this.field_83.size() != var4) {
  723.          this.method_27(true, true);
  724.       }
  725.  
  726.    }
  727.  
  728.    // $FF: renamed from: if (boolean, boolean) void
  729.    public synchronized void method_27(boolean var1, boolean var2) {
  730.       if (this.field_83 != null) {
  731.          this.field_62 = System.currentTimeMillis();
  732.          int var3 = this.field_83.size();
  733.          int var4 = 2 + var3;
  734.          byte[] var5 = new byte[var4 * 4];
  735.          this.method_21(this.field_59, var5, 0);
  736.          this.method_21(this.field_28, var5, 1);
  737.          if (!var1) {
  738.             var3 = 2;
  739.          } else {
  740.             for(int var6 = 0; var6 < var3; ++var6) {
  741.                int var7 = (Integer)this.field_83.elementAt(var6);
  742.                if (var7 == this.field_64) {
  743.                   var7 |= Integer.MIN_VALUE;
  744.                }
  745.  
  746.                this.method_21(var7, var5, var6 + 2);
  747.             }
  748.  
  749.             var3 += 2;
  750.          }
  751.  
  752.          Book.a(Book.case(this.field_85), var5, var3 * 4, var2);
  753.       }
  754.  
  755.    }
  756.  
  757.    // $FF: renamed from: null () void
  758.    public void method_28() {
  759.       this.method_27(false, false);
  760.    }
  761.  
  762.    // $FF: renamed from: for () f
  763.    public static class_0 method_29() {
  764.       return field_86;
  765.    }
  766.  
  767.    // $FF: renamed from: do (java.lang.String) byte[]
  768.    public static byte[] method_30(String var0) {
  769.       boolean var1 = field_76 || !field_75;
  770.       int var2 = var0.length();
  771.       int var3 = 0;
  772.       byte[] var4;
  773.       if (field_74) {
  774.          var4 = new byte[var2 * 4];
  775.  
  776.          for(int var5 = 0; var5 < var2; ++var5) {
  777.             char var6 = var0.charAt(var5);
  778.             if (var1 && var6 == '\n') {
  779.                var4[var3++] = 13;
  780.                var4[var3++] = 0;
  781.             }
  782.  
  783.             var4[var3++] = (byte)(var6 & 255);
  784.             var4[var3++] = (byte)(var6 >> 8);
  785.          }
  786.       } else {
  787.          var4 = new byte[var2 + var2];
  788.  
  789.          for(int var14 = 0; var14 < var2; ++var14) {
  790.             char var16 = var0.charAt(var14);
  791.             if (var1 && var16 == '\n') {
  792.                var4[var3++] = 13;
  793.             }
  794.  
  795.             byte var7 = (byte)(var16 & 255);
  796.             byte[] var8 = field_80;
  797.             if (var16 >= field_81 && var16 > 'z') {
  798.                byte var9 = (byte)(var16 >> 8);
  799.  
  800.                for(int var10 = 0; var10 < var8.length; var10 += 3) {
  801.                   if (var8[var10 + 2] == var7 && var8[var10 + 1] == var9) {
  802.                      var7 = var8[var10];
  803.                      break;
  804.                   }
  805.                }
  806.             }
  807.  
  808.             var4[var3++] = var7;
  809.          }
  810.       }
  811.  
  812.       byte[] var15 = new byte[var3];
  813.       System.arraycopy(var4, 0, var15, 0, var3);
  814.       Object var13 = null;
  815.       return var15;
  816.    }
  817.  
  818.    // $FF: renamed from: a (java.lang.String) byte[]
  819.    public static byte[] method_31(String var0) {
  820.       boolean var1 = field_74;
  821.       field_74 = true;
  822.       byte[] var2 = method_30(var0);
  823.       field_74 = var1;
  824.       return var2;
  825.    }
  826.  
  827.    // $FF: renamed from: if (byte[]) char[]
  828.    static char[] method_32(byte[] var0) {
  829.       int var1 = var0.length;
  830.       char[] var2 = new char[var1];
  831.       int var3 = 0;
  832.       if (field_74) {
  833.          for(int var4 = 1; var4 < var1; var4 += 2) {
  834.             char var5 = (char)(var0[var4 - 1] & 255);
  835.             char var6 = (char)(var0[var4] & 255);
  836.             var5 = (char)(var6 << 8 | var5 & 255);
  837.             if (var5 != '\r') {
  838.                var2[var3++] = var5;
  839.             }
  840.          }
  841.       } else {
  842.          for(int var7 = 0; var7 < var1; ++var7) {
  843.             char var10 = (char)(var0[var7] & 255);
  844.             if (var10 != '\r') {
  845.                var2[var3++] = field_79[var10];
  846.             }
  847.          }
  848.       }
  849.  
  850.       char[] var8 = new char[var3];
  851.       System.arraycopy(var2, 0, var8, 0, var3);
  852.       return var8;
  853.    }
  854.  
  855.    // $FF: renamed from: a (byte[]) java.lang.String
  856.    public static String method_33(byte[] var0) {
  857.       boolean var1 = field_74;
  858.       field_74 = true;
  859.       char[] var2 = method_32(var0);
  860.       field_74 = var1;
  861.       return new String(var2);
  862.    }
  863.  
  864.    // $FF: renamed from: do (byte[], char, char) char
  865.    char method_34(byte[] var1, char var2, char var3) {
  866.       for(char var4 = var2; var4 < var3; ++var4) {
  867.          byte var5 = var1[var4];
  868.          if (var5 == 32 || var5 == 10 || var5 == 13 || var5 == 9) {
  869.             return var4;
  870.          }
  871.       }
  872.  
  873.       return var2;
  874.    }
  875.  
  876.    // $FF: renamed from: if (byte[], char, char) char
  877.    char method_35(byte[] var1, char var2, char var3) {
  878.       for(char var4 = var2; var4 < var3; ++var4) {
  879.          byte var5 = var1[var4];
  880.          if (var5 != 32 && var5 != 10 && var5 != 13 && var5 != 9) {
  881.             return var4;
  882.          }
  883.       }
  884.  
  885.       return var2;
  886.    }
  887.  
  888.    // $FF: renamed from: for (byte[], char, char) char
  889.    char method_36(byte[] var1, char var2, char var3) {
  890.       char var4 = this.method_34(var1, var2, var3);
  891.       if (var4 > var2) {
  892.          var4 = this.method_35(var1, var4, var3);
  893.          if (!this.field_69) {
  894.             while(var4 < var3) {
  895.                char var5 = field_79[var1[var4] & 255];
  896.                if (Character.isLowerCase(var5) || Character.isUpperCase(var5) || Character.isDigit(var5)) {
  897.                   break;
  898.                }
  899.  
  900.                ++var4;
  901.             }
  902.          }
  903.       }
  904.  
  905.       return var4 >= var3 ? var2 : var4;
  906.    }
  907.  
  908.    // $FF: renamed from: a (int, int) byte[]
  909.    protected byte[] method_37(int var1, int var2) {
  910.       byte[] var3 = new byte[var2];
  911.  
  912.       int var4;
  913.       try {
  914.          this.method_1(var1);
  915.          var2 = Math.min(var2, field_60 - var1);
  916.          var4 = this.field_0.read(this.field_61, var3, 0, var2);
  917.       } catch (Exception var6) {
  918.          return var3;
  919.       }
  920.  
  921.       byte[] var5 = new byte[var4];
  922.       System.arraycopy(var3, 0, var5, 0, var4);
  923.       return var5;
  924.    }
  925.  
  926.    // $FF: renamed from: do (int, int) java.lang.String
  927.    protected String method_38(int var1, int var2) {
  928.       return new String(method_32(this.method_37(var1, var2)));
  929.    }
  930.  
  931.    // $FF: renamed from: if (int, char) a
  932.    protected a method_39(int var1, char var2) {
  933.       int var3 = 0;
  934.       if (this.field_61 >= 0) {
  935.          try {
  936.             this.method_1(var1);
  937.             var3 = 512;
  938.             if (var1 + var3 > field_60) {
  939.                var3 = field_60 - var1;
  940.             }
  941.  
  942.             if (var3 > 0) {
  943.                var3 = this.field_0.read(this.field_61, this.field_57, 0, var3);
  944.             }
  945.  
  946.             if (var3 > 0) {
  947.                return this.method_40(this.field_57, var1, var2, (char)var3);
  948.             }
  949.          } catch (Exception var5) {
  950.          }
  951.       }
  952.  
  953.       a var4 = new a(var1);
  954.       var4.a("");
  955.       return var4;
  956.    }
  957.  
  958.    // $FF: renamed from: a (byte[], int, char, char) a
  959.    protected a method_40(byte[] var1, int var2, char var3, char var4) {
  960.       a var5 = new a(var2);
  961.       char var6 = 0;
  962.       char var8 = 0;
  963.       int var9 = -1;
  964.       int var10 = -1;
  965.       char var11 = '\u0000';
  966.       byte var12 = 0;
  967.       char var13 = 0;
  968.       char var14 = 0;
  969.       char var15 = 0;
  970.       char var16 = 0;
  971.       char var17 = 0;
  972.       byte var18 = 0;
  973.       char var19 = 0;
  974.       if (var4 > 0) {
  975.          int var20 = var4 - 1;
  976.          char var7;
  977.          if (var3 != 0 && var2 != 0) {
  978.             var7 = this.method_36(var1, '\u0000', var3);
  979.             var5.new += var7;
  980.             var5.int = var5.new + 1;
  981.             var14 = var7;
  982.          } else {
  983.             var7 = '\u0000';
  984.          }
  985.  
  986.          for(; var7 < var4 && var8 < this.field_7; ++var7) {
  987.             char var22 = (char)(var1[var7] & 255);
  988.             var12 = field_78[var22];
  989.             char var21 = field_79[var22];
  990.             if (var12 > 0) {
  991.                var11 = (char)(var11 + var12);
  992.                var13 = (char)(var13 + var12);
  993.             } else {
  994.                var12 = (byte)(var12 & 63);
  995.                switch (var21) {
  996.                   case '\t':
  997.                      var21 = ' ';
  998.                      var12 = this.field_84;
  999.                   case ' ':
  1000.                      if (this.field_40 && var11 == 0) {
  1001.                         continue;
  1002.                      }
  1003.  
  1004.                      char var33 = 0;
  1005.                      if (var7 < var20) {
  1006.                         var33 = (char)var1[var7 + 1];
  1007.                      }
  1008.  
  1009.                      if (var33 == '\r' || var33 == '\n') {
  1010.                         continue;
  1011.                      }
  1012.                   case '-':
  1013.                      var9 = var6;
  1014.                      var10 = var7;
  1015.                      var11 = (char)(var11 + var12);
  1016.                      var19 = var11;
  1017.                      var13 = 0;
  1018.                      break;
  1019.                   case '\n':
  1020.                      var9 = var6;
  1021.                      var10 = var7;
  1022.                      boolean var23 = false;
  1023.                      field_75 = true;
  1024.                      if (this.field_40 && var7 + 1 < var4) {
  1025.                         char var24 = (char)(var1[var7 + 1] & 255);
  1026.                         if (this.field_69) {
  1027.                            if (this.field_68) {
  1028.                               var24 = field_79[var24];
  1029.                               var23 = var24 >> 8 == 6;
  1030.                            } else if (this.field_67) {
  1031.                               var24 = field_79[var24];
  1032.                               var23 = var24 >> 8 == 5;
  1033.                            }
  1034.  
  1035.                            var23 = var23 || Character.isLowerCase(var24);
  1036.                         } else {
  1037.                            var24 = field_79[var24];
  1038.                            var23 = Character.isLowerCase(var24);
  1039.                         }
  1040.                      }
  1041.  
  1042.                      if (var23) {
  1043.                         var21 = ' ';
  1044.                         var12 = this.field_84;
  1045.                         var11 = (char)(var11 + var12);
  1046.                         var19 = var11;
  1047.                      } else {
  1048.                         var11 = '\u0000';
  1049.                         var19 = 0;
  1050.                         var9 = -1;
  1051.                         ++var8;
  1052.                         if (var8 == 1) {
  1053.                            var5.int = var2 + var7 + 1;
  1054.                         }
  1055.                      }
  1056.  
  1057.                      var13 = 0;
  1058.                      break;
  1059.                   case '\r':
  1060.                      field_76 = true;
  1061.                      continue;
  1062.                }
  1063.             }
  1064.  
  1065.             this.field_58[var6++] = var21;
  1066.             if (var8 < this.field_8) {
  1067.                if (var11 > this.field_10) {
  1068.                   int var34 = var6 - 1;
  1069.                   char var39 = var7;
  1070.                   if (var9 > 0 && var13 + var12 < var11) {
  1071.                      var39 = (char)(var10 + 1);
  1072.                      char var41 = this.field_58[var9];
  1073.                      if (var41 == '-') {
  1074.                         boolean var26 = false;
  1075.                         if (var7 == var10) {
  1076.                            --var9;
  1077.                            --var39;
  1078.                            var13 = (char)var12;
  1079.                            char var27 = this.method_41(var1, var7, var4);
  1080.                            if (var27 > var7) {
  1081.                               var7 = var27;
  1082.                               var39 = (char)(var27 + 1);
  1083.                               var13 = 0;
  1084.                               var26 = true;
  1085.                            }
  1086.                         }
  1087.  
  1088.                         if (!var26) {
  1089.                            System.arraycopy(this.field_58, var9 + 1, this.field_58, var9 + 2, var6 - var9);
  1090.                            ++var6;
  1091.                         }
  1092.  
  1093.                         var34 = var9 + 1;
  1094.                         this.field_58[var34] = '\n';
  1095.                         var11 = var13;
  1096.                      } else {
  1097.                         this.field_58[var9] = '\n';
  1098.                         var11 = var13;
  1099.                      }
  1100.                   } else {
  1101.                      char var25 = this.field_58[var6 - 1];
  1102.                      this.field_58[var6] = var25;
  1103.                      this.field_58[var6 - 1] = '\n';
  1104.                      var13 = (char)var12;
  1105.                      var11 = var13;
  1106.                      ++var6;
  1107.                   }
  1108.  
  1109.                   var9 = -1;
  1110.                   ++var8;
  1111.                   if (var8 == 1) {
  1112.                      var5.int = var2 + var39;
  1113.                   }
  1114.                }
  1115.             } else if (var11 > this.field_53) {
  1116.                int var36;
  1117.                if ((this.field_44 || this.field_38) && !Book.char) {
  1118.                   var5.if = true;
  1119.                   var36 = Book.e ? this.field_53 : this.field_10;
  1120.                } else {
  1121.                   var36 = this.field_53;
  1122.                }
  1123.  
  1124.                if (var11 > var36) {
  1125.                   if (this.field_41 && var17 > var15) {
  1126.                      var9 = var17 + 1;
  1127.                      var19 = (char)var18;
  1128.                   }
  1129.  
  1130.                   int var40 = var7;
  1131.                   if (var9 > 0) {
  1132.                      var40 = var10 + 1;
  1133.                      var6 = (char)(var9 + 1);
  1134.                      char var42 = this.field_58[var9];
  1135.                      if (var42 == '-' && var7 == var10) {
  1136.                         --var9;
  1137.                         --var40;
  1138.                         char var43 = this.method_41(var1, var7, var4);
  1139.                         if (var43 > var40) {
  1140.                            var40 = var43 + 1;
  1141.                         }
  1142.                      }
  1143.                   } else {
  1144.                      var11 = (char)(var11 - var12);
  1145.                      var19 = var11;
  1146.                      --var6;
  1147.                   }
  1148.  
  1149.                   if (var19 > 0 && var19 <= this.field_53) {
  1150.                      var5.if = false;
  1151.                   }
  1152.  
  1153.                   var7 = (char)var40;
  1154.                   break;
  1155.                }
  1156.             } else if (this.field_41) {
  1157.                int var37 = this.field_10 >> 2;
  1158.                if (var11 > var37) {
  1159.                   if (var21 != '.' && var21 != '!' && var21 != '?' && (var11 <= this.field_10 - var37 || var21 != ',' && var21 != ';')) {
  1160.                      if (var6 != var15 + 1 || var21 != '\'' && var21 != '"') {
  1161.                         if (var6 == var15 + 1 && (var21 == ' ' || var21 == '\n')) {
  1162.                            var17 = var6;
  1163.                            var7 = var16;
  1164.                            var6 = var6;
  1165.                            var8 = (char)this.field_7;
  1166.                         }
  1167.                      } else {
  1168.                         var15 = var6;
  1169.                         var16 = var7;
  1170.                      }
  1171.                   } else {
  1172.                      var15 = var6;
  1173.                      var16 = var7;
  1174.                   }
  1175.                }
  1176.             }
  1177.          }
  1178.  
  1179.          if (var6 > 0) {
  1180.             this.field_58[var6++] = '\n';
  1181.             var5.a(this.field_58, var6);
  1182.          } else {
  1183.             var5.a("");
  1184.          }
  1185.  
  1186.          var7 = this.method_35(var1, var7, var4);
  1187.          var4 = (char)(var7 - var14);
  1188.       }
  1189.  
  1190.       var5.a = var4;
  1191.       return var5;
  1192.    }
  1193.  
  1194.    // $FF: renamed from: a (byte[], char, char) char
  1195.    char method_41(byte[] var1, char var2, char var3) {
  1196.       if (!this.field_40) {
  1197.          return var2;
  1198.       } else {
  1199.          char var4 = var2;
  1200.  
  1201.          char var5;
  1202.          for(var5 = 1; var5 + var4 < var3 && var1[var4 + var5] == 45; ++var5) {
  1203.          }
  1204.  
  1205.          if (var5 < 3) {
  1206.             return var2;
  1207.          } else {
  1208.             for(var4 = (char)(var4 + var5); var4 + 1 < var3 && (var1[var4 + 1] == 13 || var1[var4 + 1] == 10); ++var4) {
  1209.             }
  1210.  
  1211.             return var4;
  1212.          }
  1213.       }
  1214.    }
  1215.  
  1216.    // $FF: renamed from: for (int) int
  1217.    public static int method_42(int var0) {
  1218.       int var1 = var0 / 128 + 1;
  1219.       int var2 = method_43();
  1220.       return Math.min(var1, var2);
  1221.    }
  1222.  
  1223.    // $FF: renamed from: if () int
  1224.    public static int method_43() {
  1225.       return field_60 / 128 + 1;
  1226.    }
  1227.  
  1228.    // $FF: renamed from: char () java.lang.String
  1229.    public String method_44() {
  1230.       int var1 = method_43();
  1231.       int var2 = method_42(this.field_59);
  1232.       if (this.field_1.a + this.field_59 >= field_60) {
  1233.          var2 = var1;
  1234.       }
  1235.  
  1236.       return "" + var2 + "/" + var1;
  1237.    }
  1238.  
  1239.    // $FF: renamed from: new (boolean) int
  1240.    private int method_45(boolean var1) {
  1241.       return var1 ? this.field_1.new + this.field_1.a : this.field_1.int;
  1242.    }
  1243.  
  1244.    // $FF: renamed from: a (boolean) boolean
  1245.    public synchronized boolean method_46(boolean var1) {
  1246.       if (this.field_1.a + this.field_59 >= field_60) {
  1247.          return false;
  1248.       } else {
  1249.          this.field_30 = System.currentTimeMillis();
  1250.          boolean var2 = true;
  1251.  
  1252.          while(this.field_4) {
  1253.             var2 = false;
  1254.             Thread.currentThread();
  1255.             Thread.yield();
  1256.          }
  1257.  
  1258.          this.method_6(var1);
  1259.          if (this.field_6 >= field_27 - 1) {
  1260.             a var3 = (a)this.field_77.elementAt(0);
  1261.             this.field_77.removeElementAt(0);
  1262.             --this.field_6;
  1263.          }
  1264.  
  1265.          ++this.field_6;
  1266.          if (this.field_6 < this.field_77.size()) {
  1267.             this.field_1 = (a)this.field_77.elementAt(this.field_6);
  1268.             this.field_59 = this.field_1.new;
  1269.          } else {
  1270.             this.field_1 = this.method_39(this.method_45(var1), '\u0000');
  1271.             this.field_59 = this.field_1.new;
  1272.             this.field_77.addElement(this.field_1);
  1273.          }
  1274.  
  1275.          if (var2 && this.field_6 == this.field_77.size() - 1) {
  1276.             this.field_2.a(this, this.method_45(var1));
  1277.          }
  1278.  
  1279.          ((Canvas)this).repaint();
  1280.          return true;
  1281.       }
  1282.    }
  1283.  
  1284.    // $FF: renamed from: do (boolean) boolean
  1285.    public synchronized boolean method_47(boolean var1) {
  1286.       if (this.field_59 <= 0) {
  1287.          return false;
  1288.       } else {
  1289.          while(this.field_4) {
  1290.             Thread.currentThread();
  1291.             Thread.yield();
  1292.          }
  1293.  
  1294.          this.method_6(var1);
  1295.          if (this.field_6 > 0) {
  1296.             --this.field_6;
  1297.             this.field_1 = (a)this.field_77.elementAt(this.field_6);
  1298.             this.field_59 = this.field_1.new;
  1299.          } else {
  1300.             int var3 = this.field_59;
  1301.             char var4;
  1302.             if (var1) {
  1303.                var4 = 128;
  1304.             } else {
  1305.                var4 = 18;
  1306.             }
  1307.  
  1308.             int var2 = this.field_59 - var4;
  1309.             this.method_16(var2, var4);
  1310.          }
  1311.  
  1312.          ((Canvas)this).repaint();
  1313.          return true;
  1314.       }
  1315.    }
  1316.  
  1317.    protected synchronized void keyPressed(int var1) {
  1318.       Book var2 = Book.try();
  1319.       boolean var3 = var1 == this.field_50 || var1 == -62 || var1 == -14 || var1 == 54;
  1320.       boolean var4 = var1 == this.field_49 || var1 == -61 || var1 == -13 || var1 == 52;
  1321.       if (this.method_11()) {
  1322.          if (var1 == -63 || var1 == -5) {
  1323.             var3 = true;
  1324.          }
  1325.  
  1326.          long var5 = System.currentTimeMillis();
  1327.          long var7 = var5 - this.field_30;
  1328.          if (var4) {
  1329.             this.method_47(true);
  1330.             this.field_36 = true;
  1331.             this.field_35 = Math.max(this.field_35 * 87 / 100, 450);
  1332.             this.field_30 = var5;
  1333.          }
  1334.  
  1335.          if (var3) {
  1336.             int var9 = this.field_1.int() * '\uea60' / (int)var7;
  1337.             if (!this.field_36 && var9 < 2500) {
  1338.                this.field_35 = (var9 * 3 + this.field_35) / 4;
  1339.             }
  1340.  
  1341.             if (this.field_36 || var9 < 2500) {
  1342.                this.field_30 = var5;
  1343.                this.method_46(true);
  1344.             }
  1345.  
  1346.             this.field_36 = false;
  1347.          }
  1348.  
  1349.          if (var4 || var3) {
  1350.             this.method_10();
  1351.          }
  1352.       } else if (var3) {
  1353.          if (var1 == -14 && System.currentTimeMillis() - this.field_30 < 500L) {
  1354.             return;
  1355.          }
  1356.  
  1357.          this.method_46(true);
  1358.       } else if (var4) {
  1359.          this.method_47(true);
  1360.       } else if (var1 != this.field_52 && var1 != 56) {
  1361.          if (var1 != this.field_51 && var1 != 50) {
  1362.             if (var1 == -1) {
  1363.                var2.g();
  1364.             } else if (var1 == 53) {
  1365.                String var10 = "File: " + this.field_85 + "\nPage " + this.method_44();
  1366.                byte[] var6 = method_30(var10);
  1367.                a var12 = this.method_40(var6, 0, '\u0000', (char)var6.length);
  1368.                this.field_3 = this.method_39(0, '\u0000');
  1369.                var10 = var12.a() + "\n" + this.field_3.a();
  1370.                this.field_3.a(var10);
  1371.                Object var13 = null;
  1372.                ((Canvas)this).repaint();
  1373.             } else if (var1 == -12) {
  1374.                this.method_28();
  1375.                var2.case();
  1376.             } else if (var1 == 48) {
  1377.                var2.j();
  1378.             } else if (var1 != -63 && var1 != -5) {
  1379.                if (var1 == 55) {
  1380.                   if (this.field_64 >= 0) {
  1381.                      this.method_26(this.field_64, false);
  1382.                   }
  1383.  
  1384.                   this.method_24();
  1385.                   this.method_17(this.field_64 = this.field_65);
  1386.                   ((Canvas)this).repaint();
  1387.                } else if (var1 == -6) {
  1388.                   this.field_38 = !this.field_38;
  1389.                   var2.H[4] = this.field_38;
  1390.                   this.method_2(var2.H);
  1391.                   this.method_17(this.field_59);
  1392.                   ((Canvas)this).repaint();
  1393.                } else if (var1 == 42) {
  1394.                   this.field_63 = 1;
  1395.                } else if (var1 == -11) {
  1396.                   this.method_28();
  1397.                   var2.goto();
  1398.                } else if (var1 == 57) {
  1399.                   this.method_16(this.field_59 + 1, '\u0014');
  1400.                   ((Canvas)this).repaint();
  1401.                } else if (var1 == 35) {
  1402.                   this.method_16(this.field_59 + 1, '\u0000');
  1403.                   ((Canvas)this).repaint();
  1404.                }
  1405.             } else {
  1406.                this.field_36 = false;
  1407.                this.method_46(true);
  1408.                this.method_10();
  1409.             }
  1410.          } else {
  1411.             this.method_47(false);
  1412.          }
  1413.       } else {
  1414.          this.method_46(false);
  1415.       }
  1416.  
  1417.       var2.i();
  1418.    }
  1419.  
  1420.    protected void keyRepeated(int var1) {
  1421.       switch (var1) {
  1422.          case -63:
  1423.          case -14:
  1424.          case -13:
  1425.          case -5:
  1426.          case 53:
  1427.             break;
  1428.          case 42:
  1429.             if (this.field_63 == 1) {
  1430.                this.field_63 = -1;
  1431.                this.keyReleased(var1);
  1432.             }
  1433.             break;
  1434.          case 49:
  1435.             if (this.field_59 != 0) {
  1436.                this.method_17(0);
  1437.                ((Canvas)this).repaint();
  1438.             }
  1439.             break;
  1440.          case 51:
  1441.             this.field_66 = true;
  1442.             break;
  1443.          default:
  1444.             this.keyPressed(var1);
  1445.       }
  1446.  
  1447.    }
  1448.  
  1449.    protected void keyReleased(int var1) {
  1450.       long var2 = System.currentTimeMillis();
  1451.       if (var2 - this.field_62 > 30000L) {
  1452.          this.method_28();
  1453.       }
  1454.  
  1455.       Book var4 = Book.try();
  1456.       switch (var1) {
  1457.          case 42:
  1458.             int var5 = (field_48 ? 4 : 0) + (this.field_43 != 0 ? 2 : 0) + (field_47 ? 1 : 0);
  1459.             var5 += this.field_63;
  1460.             var5 &= 7;
  1461.             var4.H[1] = (var5 & 4) != 0;
  1462.             var4.H[0] = (var5 & 1) != 0;
  1463.             var4.H[6] = (var5 & 2) != 0;
  1464.             this.method_2(var4.H);
  1465.             this.method_17(this.field_59);
  1466.             ((Canvas)this).repaint();
  1467.             this.field_63 = 0;
  1468.             break;
  1469.          case 49:
  1470.             if (this.field_59 == 0) {
  1471.                break;
  1472.             }
  1473.          case 51:
  1474.             if (this.field_66) {
  1475.                this.field_66 = false;
  1476.                var4.do();
  1477.             } else {
  1478.                var4.a(var1 == 51);
  1479.             }
  1480.             break;
  1481.          case 53:
  1482.             ((Canvas)this).repaint();
  1483.       }
  1484.  
  1485.    }
  1486.  
  1487.    // $FF: renamed from: goto () a
  1488.    a method_48() {
  1489.       int var1 = this.field_1.a;
  1490.       char[] var2 = method_32(this.method_37(this.field_59, var1));
  1491.       int var3 = var2.length;
  1492.       if (this.field_59 + var1 < field_60) {
  1493.          while(true) {
  1494.             --var3;
  1495.             if (var3 > 0) {
  1496.                char var4 = var2[var3];
  1497.                if (var4 == ' ' || var4 == '\n' || var4 == '\r' || var4 == '\t') {
  1498.                   --var1;
  1499.                   continue;
  1500.                }
  1501.             }
  1502.  
  1503.             ++var3;
  1504.             break;
  1505.          }
  1506.       }
  1507.  
  1508.       a var5 = new a(this.field_59);
  1509.       var5.a(var2, var3);
  1510.       var5.a = var1;
  1511.       return var5;
  1512.    }
  1513.  
  1514.    // $FF: renamed from: a (a, byte[]) java.lang.String
  1515.    public synchronized String method_49(a var1, byte[] var2) {
  1516.       Object var3 = null;
  1517.       String var4 = "~" + this.field_85 + ".tmp";
  1518.       String var5 = this.field_85 + ".bak";
  1519.       int var6 = this.field_59;
  1520.       boolean var7 = true;
  1521.  
  1522.       try {
  1523.          if (Book.o(var4)) {
  1524.             File.delete(var4);
  1525.          }
  1526.  
  1527.          if (Book.o(var5)) {
  1528.             File.delete(var5);
  1529.          }
  1530.  
  1531.          int var8 = var2.length - var1.a;
  1532.          boolean var9 = var8 == 0 || var8 > 0 && var6 + var1.a >= field_60;
  1533.          if (var9) {
  1534.             this.method_1(var6);
  1535.             var7 = this.field_0.write(this.field_61, var2, 0, var2.length) == var2.length;
  1536.          } else {
  1537.             if (File.spaceAvailable() < field_60 + 2048) {
  1538.                return "Not enough space!";
  1539.             }
  1540.  
  1541.             File var10 = new File();
  1542.             int var11 = var10.open(var4);
  1543.             this.method_1(0);
  1544.             this.field_89 = System.currentTimeMillis();
  1545.             var7 = this.method_50(this.field_0, this.field_61, 0, var6, var10, var11);
  1546.             var7 = var7 && var10.write(var11, var2, 0, var2.length) == var2.length;
  1547.             if (var7) {
  1548.                var6 += var1.a;
  1549.                this.method_1(var6);
  1550.                var7 = this.method_50(this.field_0, this.field_61, var6, field_60 - var6, var10, var11);
  1551.             }
  1552.  
  1553.             var10.close(var11);
  1554.             this.field_0.close(this.field_61);
  1555.             this.field_61 = -1;
  1556.             var7 = var7 && File.rename(this.field_85, var5) > 0;
  1557.             var7 = var7 && File.rename(var4, this.field_85) > 0;
  1558.             if (var7) {
  1559.                File.delete(var5);
  1560.             } else {
  1561.                File.delete(var4);
  1562.             }
  1563.  
  1564.             this.field_61 = this.field_0.open(this.field_85);
  1565.             if (var7) {
  1566.                this.method_25(var6, var8);
  1567.             }
  1568.          }
  1569.  
  1570.          field_60 = this.field_0.length(this.field_61);
  1571.       } catch (Exception var12) {
  1572.          var7 = false;
  1573.       }
  1574.  
  1575.       return var7 ? null : "Could not save!";
  1576.    }
  1577.  
  1578.    // $FF: renamed from: a (com.siemens.mp.io.File, int, int, int, com.siemens.mp.io.File, int) boolean
  1579.    boolean method_50(File var1, int var2, int var3, int var4, File var5, int var6) {
  1580.       byte[] var7 = Book.c();
  1581.       int var8 = var7.length;
  1582.  
  1583.       try {
  1584.          while(var4 > 0) {
  1585.             int var9 = Math.min(var8, var4);
  1586.             int var10 = var1.read(var2, var7, 0, var9);
  1587.             if (var10 > 0) {
  1588.                if (var5.write(var6, var7, 0, var10) != var10) {
  1589.                   return false;
  1590.                }
  1591.  
  1592.                long var11 = System.currentTimeMillis();
  1593.                if (var11 - this.field_89 > 1000L) {
  1594.                   this.field_89 = var11;
  1595.                   Book.a(var3, field_60);
  1596.                }
  1597.             }
  1598.  
  1599.             if (var10 != var9) {
  1600.                break;
  1601.             }
  1602.  
  1603.             var4 -= var9;
  1604.             var3 += var9;
  1605.          }
  1606.  
  1607.          return true;
  1608.       } catch (Exception var13) {
  1609.          return false;
  1610.       }
  1611.    }
  1612. }
  1613.